package com.net.xpay.admin.vo;

import com.net.xpay.common.enums.invoice.InvoiceMaterial;
import com.net.xpay.common.enums.invoice.InvoiceStatus;
import com.net.xpay.common.enums.invoice.InvoiceTitleType;
import com.net.xpay.common.enums.invoice.InvoiceType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Getter
@Setter
@NoArgsConstructor
public class InvoiceVo {

    @ApiModelProperty(notes = "用户编号")
    private Long id;

    @ApiModelProperty(notes = "用户编号")
    private Long userId;

    //发票抬头信息
    @ApiModelProperty(notes = "抬头类型")
    private InvoiceTitleType invoiceTitleType;

    @ApiModelProperty(notes = "发票类型")
    private InvoiceType invoiceType;

    @ApiModelProperty(notes = "发票抬头")
    private String invoiceTitle;

    @ApiModelProperty(notes = "纳税人识别号")
    private String taxIdNumber;

    @ApiModelProperty(notes = "基本开户银行")
    private String  accountsBank;

    @ApiModelProperty(notes = "基本开户账号")
    private String  accountNo;

    @ApiModelProperty(notes = "企业注册地址")
    private String  registeredAddress;

    @ApiModelProperty(notes = "企业注册电话")
    private String  registeredPhone;


    //邮寄地址信息
    @ApiModelProperty(notes = "收件人姓名")
    private String recipientName;

    @ApiModelProperty(notes = "省")
    private String province;

    @ApiModelProperty(notes = "市")
    private String city;

    @ApiModelProperty(notes = "区")
    private String district;

    @ApiModelProperty(notes = "详细地址")
    private String detailedAddress;

    @ApiModelProperty(notes = "充值记录id集合")
    private List<Long> chargeRecordIds;

    @ApiModelProperty(notes = "联系人手机号")
    private String contactsPhone;

    @ApiModelProperty(notes = "发票状态")
    private InvoiceStatus invoiceStatus;

    @ApiModelProperty(notes = "发票号码")
    private String invoiceNumber;

    @ApiModelProperty(notes = "快递单号")
    private String expressNumber;

    @ApiModelProperty(notes = "电子发票链接")
    private String invoiceUrl;

    @ApiModelProperty(notes = "电子发票图片")
    private String invoicePage;

    @ApiModelProperty(notes = "发票介质")
    private InvoiceMaterial invoiceMaterial;

    @ApiModelProperty(notes = "开票金额")
    private BigDecimal invoiceAmount;

    @ApiModelProperty(notes = "已开票时间")
    private LocalDateTime dealingTime;

    @ApiModelProperty(notes = "已邮寄时间")
    private LocalDateTime mailedTime;


    @ApiModelProperty(notes = "创建时间")
    private LocalDateTime createTime;

    @ApiModelProperty(notes = "失败信息")
    private String failMessage;

    @ApiModelProperty(notes = "备注")
    private String remark;

}
